<#assign uncapTableName = "${tableName}"?uncap_first>
package ${parentName}.${moduleName}.core.application.query.impl;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import ${parentName}.${moduleName}.core.application.command.Query${tableName}PageCommand;
import ${parentName}.${moduleName}.core.application.command.Query${tableName}ByOneCommand;
import ${parentName}.${moduleName}.core.application.command.Query${tableName}ListCommand;
import ${parentName}.${moduleName}.core.application.query.${tableName}QueryService;
import ${parentName}.${moduleName}.core.application.convert.AppConverter;
import ${parentName}.${moduleName}.core.domain.repository.${tableName}Repository;
import ${parentName}.${moduleName}.core.domain.aggregatemodel.${tableName};
import ${parentName}.${moduleName}.core.domain.aggregatemodel.Query${tableName}Page;
import ${parentName}.${moduleName}.core.domain.aggregatemodel.Query${tableName}ByOne;
import ${parentName}.${moduleName}.core.domain.aggregatemodel.Query${tableName}List;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;

/**
 * ${tableComment}查询服务实现类
 *
 * @author ${author}
 * @since ${date}
 */

@Service
@AllArgsConstructor
public class ${tableName}QueryServiceImpl implements ${tableName}QueryService {
    private ${tableName}Repository ${uncapTableName}Repository;

    private AppConverter appConverter;

    @Override
    public Page<${tableName}> query${tableName}Page(Query${tableName}PageCommand query${tableName}PageCommand){
       Query${tableName}Page query${tableName}Page = appConverter.query${tableName}PageCommandToQuery${tableName}Page(query${tableName}PageCommand);
       return ${uncapTableName}Repository.query${tableName}Page(query${tableName}Page);
    }

    @Override
    public ${tableName} query${tableName}ByOne(Query${tableName}ByOneCommand query${tableName}ByOneCommand){
       Query${tableName}ByOne query${tableName}ByOne = appConverter.query${tableName}ByOneCommandToQuery${tableName}ByOne(query${tableName}ByOneCommand);
       return ${uncapTableName}Repository.query${tableName}ByOne(query${tableName}ByOne);
    }

    @Override
    public List<${tableName}> query${tableName}List(Query${tableName}ListCommand query${tableName}ListCommand){
       Query${tableName}List query${tableName}List = appConverter.query${tableName}ListCommandToQuery${tableName}List(query${tableName}ListCommand);
       return ${uncapTableName}Repository.query${tableName}List(query${tableName}List);
    }

}